/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package jse;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 *
 * @author WangShuai
 */
public class TypeConvert {

    public static void main(String[] args) {
    //        //1.Map Get Type
    //        Map m = new HashMap();
    //        m.put("k1", "123");
    //        m.put("k2", 123l);
    //        //Long v1 = (Long) m.get("k1");  //Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Long
    //        Long v2 = (Long)m.get("k2");    //Success
    //        System.out.println(v2);
    //
    //        //2.Array Type
    //        String[] strArray = new String[]{"a","b"};
    //        Object[] objArray = strArray;
    //        for(Object o : objArray) {
    //            System.out.println(o.toString());  //多态，父类引用o指向子类string对象，toString方法调用String类的toString方法
    //        }
    //
    //        String[] strArray2 = (String[])objArray;  //必须进行强制类型转换
    //        for(String s : strArray2) {
    //            System.out.println(s);
    //        }
    //
    //        Object[] objArray2 = new Object[]{"c","d"};
    //        for(Object o : objArray2) {
    //            System.out.println(o);   //多态
    //        }

    //        int [] intArray = new int[]{1,2,3,4};
    //        Integer[] integerArray =(Integer[])intArray;   //无法进行转换，可使用Commons Lang ArrayUtils类的toObject方法或手工循环数组进行赋值
    //        Integer[] integerArray = ArrayUtils.toObject(intArray);
        
         //3.强制装换Null to primiary
    //      int a = (Integer)null;  //java.lang.NullPointerException
        
        //4.Array Convert
    //        Object[] o = new Object[]{};
    //        //String[] s = (String[])o; //java.lang.ClassCastException
    //        String [] s = new String[]{};
    //        Object o1 = new Object();
    //        s = (String[])o1;  //java.lang.ClassCastException
    //        o = s;
        
        //5.Map
        Map m = new HashMap();
        m.put("k1", new String[]{});
        Object o = m.get("k1");
        String [] s = (String[])o;
    }

}
